package edu.pe.cayetano.model.bo;

import org.apache.commons.beanutils.DynaBean;

import ws.synopsis.frmwrk.common.BResult;
import edu.pe.cayetano.dao.ExamenClinicoGeneralDAO;
import edu.pe.cayetano.dao.FichaExtraOralDAO;
import edu.pe.cayetano.dao.HistoriaClinicaDetalleDAO;
import edu.pe.cayetano.framework.BusinessException;
import edu.pe.cayetano.seccd.constantes.ConstantesSECCD;
import edu.pe.cayetano.util.Utilitario;

public class ExamenClinicoGeneralBO extends BaseBO{

	public BResult buscarECGEspecifico(DynaBean dyna) throws BusinessException{
		BResult 						retSalida		= null;
		ExamenClinicoGeneralDAO			ecgDAO		= null;
		try{
			conectar();
			ecgDAO	 	= new ExamenClinicoGeneralDAO(conn);
			retSalida 		= ecgDAO.buscarECGEspecifico(Utilitario.getPropertyDynaBean(dyna, "codigo"));
		}catch(Exception e){
			retSalida = new BResult();
			retSalida.setCode(-1);
			retSalida.setMessage("[ExamenClinicoGeneralBO] error en metodo buscarECGEspecifico generado por:"+e.getMessage());
		}finally{
			try{
				desconectar();
			}catch(Exception e){
				retSalida = new BResult();
				retSalida.setCode(-1);
				retSalida.setMessage("[ExamenClinicoGeneralBO] error en metodo buscarECGEspecifico generador po:"+e.getMessage());
			}
		}
		return retSalida;
	}

	public BResult insertaECGArchivoHC(DynaBean dyna) throws BusinessException{
		BResult 				retSalida				= null;
		try{
			conectar();
			ExamenClinicoGeneralDAO ecgDAO	 	= new ExamenClinicoGeneralDAO(conn);
			HistoriaClinicaDetalleDAO historiaDAO	 	= new HistoriaClinicaDetalleDAO(conn);
			retSalida 	= ecgDAO.insertaECGArchivoHC(dyna);
			if(retSalida.getCode()==0){
				retSalida 	= historiaDAO.actualizaExisteHistoriaDetalle(dyna,ConstantesSECCD.EXISTE_DIAECG);
			}
			grabar();
		}catch(Exception e){
			try {
				deshacer();
			} catch (Exception e2) {
				throw new BusinessException(e.getMessage(), e2);
			}
			retSalida = new BResult();
			retSalida.setCode(-1);
			retSalida.setMessage("[FichaExtraOrallBO] error en metodo insertaECGArchivoHC generado por:"+e.getMessage());
		}finally{
			try{
				desconectar();
			}catch(Exception e){
				retSalida = new BResult();
				retSalida.setCode(-1);
				retSalida.setMessage("[FichaExtraOrallBO] error en metodo insertaECGArchivoHC generador po:"+e.getMessage());
			}
		}
		return retSalida;
	}
	
	public BResult editaECGArchivoHC(DynaBean dyna) throws BusinessException{
		BResult 				retSalida				= null;
		try{
			conectar();
			ExamenClinicoGeneralDAO ecgDAO	 	= new ExamenClinicoGeneralDAO(conn);
			retSalida 	= ecgDAO.editaECGArchivoHC(dyna);
			grabar();
		}catch(Exception e){
			try {
				deshacer();
			} catch (Exception e2) {
				throw new BusinessException(e.getMessage(), e2);
			}
			retSalida = new BResult();
			retSalida.setCode(-1);
			retSalida.setMessage("[FichaExtraOrallBO] error en metodo editaECGArchivoHC generado por:"+e.getMessage());
		}finally{
			try{
				desconectar();
			}catch(Exception e){
				retSalida = new BResult();
				retSalida.setCode(-1);
				retSalida.setMessage("[FichaExtraOrallBO] error en metodo editaECGArchivoHC generador po:"+e.getMessage());
			}
		}
		return retSalida;
	}
}
